561fae1705ab016de309a41f50f06ffda70d8dd9,src/main/java/cn/edu/buaa/crypto/encryption/ibbe/del07/generators/IBBEDel07KeyPairGenerator.java,IBBEDel07KeyPairGenerator,generateKeyPair,#,27
Before Change
}
public AsymmetricCipherKeyPair generateKeyPair() {
PropertiesParameters parameters = PairingUtils.GenerateTypeAParameters(this.parameters.getRBitLength(), this.parameters.getQBitLength());
Pairing pairing = PairingFactory.getPairing(parameters);
Element[] hs = new Element[this.parameters.getMaxBroadcastReceiver() + 1];
hs[0] = pairing.getG2().newRandomElement().getImmutable();
After Change
}
public AsymmetricKeySerPair generateKeyPair() {
Pairing pairing = PairingFactory.getPairing(this.parameters.getPairingParameters());
Element[] hs = new Element[this.parameters.getMaxBroadcastReceiver() + 1];
hs[0] = pairing.getG2().newRandomElement().getImmutable();
Element g = pairing.getG1().newRandomElement().getImmutable();
Element gamma = pairing.getZr().newRandomElement().getImmutable();
Element w = g.powZn(gamma).getImmutable();
Element v = pairing.pairing(g, hs[0]).getImmutable();
Element gammaToi = pairing.getZr().newOneElement();
for (int i = 1; i < hs.length; i++) {
gammaToi = gammaToi.mulZn(gamma).getImmutable();
hs[i] = hs[0].powZn(gammaToi).getImmutable();
}
return new AsymmetricKeySerPair(
new IBBEDel07PublicKeySerParameter(this.parameters.getPairingParameters(), w, v, hs),
new IBBEDel07MasterSecretKeySerParameter(this.parameters.getPairingParameters(), g, gamma));
}
}